package com.xk.springboot.controller;


import com.xk.springboot.dto.ResponseData;
import com.xk.springboot.dto.ResultData;
import com.xk.springboot.pojo.User;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;

/**
 * @author:Teacher黄
 * @date:Created at 2020/04/08
 */
@RestController
@RequestMapping("/rest")
public class RestfulController {


    /**
     * 查询 : 通常需要做分页
     * @param page : 当前页
     * @param pageSize : 页容量
     * @return
     * 默认进入第一页的时候通常我们是没有传递这两个参数的,
     * 需要给这两个参数默认值
     */
    @GetMapping("/get")
    public String get( @RequestParam(defaultValue = "1") Integer page,
                       @RequestParam(defaultValue = "5") Integer pageSize){

        return "get";
    }

    /**
     * 添加
     * @return
     */
    @PostMapping("/post")
    public ResultData add(@RequestBody User user){
        /**
         * 为什么Json自动转换成User : @RequestBody
         * 底层的原理: 反射
         */

        return ResponseData.success(user);
    }

    /**
     * 更新
     * @return
             */
    @PutMapping("/update")
    public ResultData update(@RequestHeader("token") String token){
        return ResponseData.success("成功",token);
    }

    /**
     * 删除
     * @return
     */
    @DeleteMapping("/delete")
    public String del(){
        return "delete";
    }

    /**
     * 注入Servlet相关API
     * @param request
     * @return
     */
    @GetMapping("/request")
    public ResultData testServlet(HttpServletRequest request){
        String name = request.getParameter("name");
        return ResponseData.success(name);
    }

}
